package com.akcome.apollo.config;

import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.stereotype.Component;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 无TOKEN
 * @author wn
 *
 */
@Component
public class EntryPointUnauthorizedHandler implements AuthenticationEntryPoint {

  @Override
  public void commence(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AuthenticationException e) throws IOException, ServletException {
      
	  boolean isAjax = "XMLHttpRequest".equals(httpServletRequest.getHeader("X-Requested-With"));
	  if(isAjax){
		  //返回json形式的错误信息
		  httpServletResponse.setCharacterEncoding("UTF-8");
		  httpServletResponse.setContentType("application/json");
		  httpServletResponse.getWriter().println("{\"code\":401,\"message\":\"未登录\",\"data\":\"\"}");
		  httpServletResponse.getWriter().flush();
	  }else{
		  httpServletResponse.sendRedirect("/login");
	  }
  }

}
